package com.hx.dao;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.Arrays;

//目标类，被代理的类
public class UserDaoProxy implements InvocationHandler {
    //注入代理对象
    private UserDaoImpl1 userDaoImpl1;
    //提供有参构造
    public UserDaoProxy(UserDaoImpl1 userDaoImpl1){
        this.userDaoImpl1=userDaoImpl1;
    }
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        //在目标方法执行之前增进的功能
        System.out.println("在方式执行前执行....."+"被增强的方式名："+method.getName()+".....传递的参数"+ Arrays.toString(args));
        //执行目标方法
        Object invoke = method.invoke(userDaoImpl1, args);
        System.out.println("add方式执行..."+invoke);
        System.out.println("方法后执行");
        return invoke;
    }
}
